package com.surelution.projects.crm

/**
 * 用来处理系统导出的为html格式的表格数据，垃圾中石油系统，导出如此怪异的结果
 * 
 * @author <a href="mailto:guangzong.syu@gmail.com">Guangzong</a>
 *
 */
class HtmlTableParserService {

    static transactional = true

	/**
	 * @param 一个文本文件
	 * @return 一个ArrayList list1， 元素个数为table主体的行数，<br>
	 *       list1中的每个元素为一个ArrayList list2，list2中的元素个数为该行table中td单元格的个数，内容为td单元格内的内容<br>
	 *       通过遍历list1得到全部元素，遍历list2中的每一个元素，可以得到任意行的任意列的值
	 */
    List<List<String>> parse(BufferedReader br){
		def rows = []
		StringBuilder sb = new StringBuilder()
		
		br.eachLine {line->
			sb.append(line)
		}
		
		def content = sb.toString()
		
		def pattern = ~/<tr.*?>(<t[d,h].*?<\/t[d,h]>)<\/tr>/
		def pattern2 = ~/<t[d,h].*?>(.*?)<\/t[d,h]>/
		def matcher = content =~ pattern
		println matcher
		println "matcher"
		matcher.each {
			def row = []
			def line = it[0]
			def matcher2 = line =~ pattern2
			matcher2.each {subLine->
				row.add(subLine[1])
			}
			rows.add(row)
		}
		return rows
	}
}
